InBox VoixtelIntegration
Versão 6.10.5
Data de Criação 06/06/2019
Recursos
Este módulo permite a integração entre o sistema de telefonia Voixtel e o software OTRS.
Pré-requisitos
Framework
As seguintes versões de framework OTRS são suportadas:
- [6.0.x]
Módulos
Os seguintes módulos são requeridos:
- InBox Core 6.31.8 ou superior
- XML::Simple
- URI::Encode
Sistema Operacional
Os seguintes sistemas operacionais são requeridos:
- [Nenhum]
Software de Terceiros
Os seguintes softwares de terceiros são requeridos:
- [Nenhum]
Instalação
bin/otrs.Console.pl Admin::Package::Install /path/to/InBox\ VoixtelIntegration 6.10.5.opm
Configuração
Este módulo pode ser configurado via Configuração do Sistema na interface administrativa. As seguintes opções de configurações estão disponíveis:
VoixtelIntegration::WebServiceConfig
Configura os parâmetros necessário de acesso à API do Voixtel.
Para isso, basta definir nos campos indicados abaixo:
Agent: usuário Voixtel
AgentPin: senha
Authentication: tipo de autenticação (Valor padrão: Digest)
Host: Seu endereço de host
VoixtelIntegration::StatusMessageConfig
Configura as mensagens correspondentes a cada status da ligação.
Valor padrão:
Attended => Ligação atendida.
Cancelled => Ligação finalizada
Error => Falha. Não foi possível realizar a ligação.
Ringing => Ligação em andamento...
Trying => Discando...
VoixtelIntegration::Core::DynamicFieldStatusCall
Configura o valor para o campo dinâmico StatusCall.
Valor padrão:
agent_pickup => Ligação atendida. call_abandoned => Ligação abandonada.
Eventos possíveis:
agent_offering: Quando o cliente realiza a ligação
call_unanswered: Quando o atendente não atende a ligação
agent_pickup: Quando o atendente atende a ligação
call_abandoned: Quando o cliente abandona a ligação
VoixtelIntegration::Core::DefaultCustomerFromTicket
Define um cliente e um usuário cliente para a criação do chamado quando o cliente não está cadastrado no OTRS.
VoixtelIntegration::Core::NewTicket
Define os parâmetros necessários para realizar a criação do chamado.
VoixtelIntegration::Core::SocketIO
Define a URL do servidor Socket.io.
VoixtelIntegration::Core::MapQueues
Define o mapeamento da fila para qual será definido o chamado na sua criação.
Uso
Configurando o módulo
Para utilizar este módulo, você deve configurar os parâmetros corretamente na configuração 'VoixtelIntegration::WebServiceConfig'. Certifique-se também de que nas preferências pessoais do perfil do seu usuário, o ramal esteja preenchido no campo 'Ramal atual'. Para isso, acesse Preferências Pessoais, clique em Perfil do Usuário, cadastre o ramal, como indicado abaixo:
Realizar Ligação
Para realizar a ligação, um JavaScript deve ser adicionado na configuração Loader da tela de abertura de chamados. Como exemplo, utilizaremos a action AgentTicketPhone.
Acesse o menu administrativo, vá em Configuração do Sistema e pesquise por Loader::Module::AgentTicketPhone###002-Ticket. Em seguida, adicione o JavaScript de nome Core.Agent.MakeCallVoixtel.js nas configurações, salve e implemente as alterações.
Acesse Novo chamado via fone e selecione um usuário cliente.
*Importante: O usuário escolhido deve ter um número de telefone (ou celular) cadastrado no OTRS. Sem isso, não será possível realizar a ligação.
Após selecionar o cliente, um widget será exibido na lateral da tela de abertura. Clicando no ícone você realizá a chamada para o cliente:
Quando a chamada for iniciada, um pop-up será exibido, informando o status da ligação:
É possível fazer ligações no action AgentTicketZoom. Para isso é necessário adicionar o arquivo Core.Agent.MakeCallVoixtelTicketZoom.js na configuração do sistema Loader::Module::AgentTicketZoom###002-Ticket. Após isso o widget de realizar ligação será apresentado corretamente.
Recebendo Ligações
Um campo dinâmico de nome CustomerVIP deve ter sido criado no seu ambiente após a instalação. Entretanto, caso isso não ocorra, crie o campo da seguinte forma:
Após, faça a seguinte configuração no aquivo Defaults.pm encontrado em Kernel/Config, no Map do CustomerUser:
[ 'DynamicField_CustomerVIP', Translatable('CustomerVIP'), 'CustomerVIP', 0, 0, 'dynamic_field', '', 0, undef, undef ],
Esse campo será exibido no cadastro do usuário-cliente de forma que poderá ser admitido se um cliente é vip ou não, como exibido no exemplo:
Um campo dinâmico de nome StatusCall deve ter sido criado no seu ambiente após a instalação. Entretanto, caso isso não ocorra, crie o campo da seguinte forma:
Um JavaScript deve ser adicionado:
Acesse o menu administrativo, vá em Configuração do Sistema e pesquise por Loader::Agent::CommonJS###000-Framework.
Em seguida, adicione os JavaScript de nomes na configuração, nesta sequencia:
inbox-thirdparty/socket.io-client/dist/socket.io.js Core.Agent.CallOffering.js
Salve e implemente as alterações.
Quando o atendente recebe uma ligação, um chamado é aberto no OTRS e o mesmo é notificado através de um popup como abaixo:
Servidor Socket.io
Para instarlar ou subir o servidor Socket.io, faça os passos abaixo:
- Instale o Node.js e npm no servidor:
Adicionar NodeSource no repositorio yum
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
Instalar Node.js and npm
yum install -y nodejs
- Instalar modules node requerido:
Clone o repositiro e acesse a pasta server-socket.io, ou baixe apenas os arquivos app.js e package.json para o servidor.
Acesse a pasta em que se encontra esses arquivos e execute os comandos abaixo:
Instalar modulos node requeridos
npm install
Instalar modulo para iniciar servidor
npm install forever -g
Iniciar servidor socket.io
forever start app.js
Para parar o servidor execute
forever stop http_server.js
Teste se servidor está com o comando:
curl "http://127.0.0.1:3000/?EIO=4&transport=polling"
Ou acessando no navegador
http://127.0.0.1:3000